package com.l024.easysecurity.modules.sys.dao;

import com.l024.easysecurity.common.page.PageParams;
import com.l024.easysecurity.modules.sys.entity.SysUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysUserMapper {
    /**
     * 查询用户的所有权限
     * @param userId
     * @return
     */
    List<String> queryAllPerms(@Param("userId")long userId);


    /**
     * 查询用户所有的菜单id
     */
    List<Long> queryAllMenuId(@Param("userId")long userId);

    /**
     * 根据用户名获取用户信息
     */
    SysUser findUserByUserName(@Param("username")String username);

    /**
     * 分页条件查询用户列表
     */
    List<SysUser> selectPageSysUser(@Param("sysUser") SysUser sysUser, @Param("pageParams") PageParams pageParam);

    /**
     * 获取总条数
     */
    Long selectPageCount(@Param("sysUser") SysUser sysUser);

    /**
     * 添加用户
     */
    void addUser(@Param("sysUser") SysUser sysUser);

    /**
     * 根据条件查询该用户是否已经存在
     */
    Long existUser(@Param("sysUser")SysUser sysUser);

    /**
     * 更新用户信息
     */
    Long updateUser(@Param("sysUser")SysUser sysUser);

    /**
     * 删除用户信息
     */
    void delSysUser(@Param("userId")Long userId);
}
